Internet of Things (herein after read as IoT) has rose to prominence over the recent decade. Industry and academia alike subscribe to the grand vision it projects and have been investing in it heavily. Although, the industries are ready with all the basic components and technologies that IoT requires. But still the industry lacks in interfacing, composing, integrating and configuring them into a single working system remains a major challenge. IoT applications are inherently distributed and often possess several non-trivial constraints. On one hand, there are constraints on timely execution of applications utilizing various compute elements in the IoT stack. As an example, real time constraints are most naturally implied for applications which require to generate actuation signals based on events detected using environmental sensors. On the other hand, effective energy utilization remains an elusive challenge as well.
An additional complexity in the IoT context is posed by the extreme dynamism of the underlying infrastructure. The application therefore, needs to dynamically adapt to varying availability of compute resources at various IoT layers. The variation of the resources may pose interesting optimization challenges for application execution in this heterogeneous infrastructure. Often times, the trade-off is between meeting expected application performance as well as guaranteeing quality, and ensuring timing constraints at the same time. This often necessitates graceful degradation of quality of output within acceptable limits to meet associated deadlines and guaranteeing an expected level of performance.